import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { StorageProvider } from '../../providers/storage/storage';
import { ConfigProvider } from '../../providers/config/config';
import { OrderPage } from '../../pages/order/order';

@Component({
  selector: 'page-contact',
  templateUrl: 'cart.html'
})
export class CartPage {

  public list = [];
  public num = '';
  public allPrice = 0; //合计总价
  public isAllChecked = false; //默认不是全部选中
  public isEdit = false; //默认是不编辑的状态
  public hasData = true;
  public OrderPage = OrderPage;

  constructor(
    public navCtrl: NavController,
    public config: ConfigProvider,
    public storage: StorageProvider,
    ) {
      
  }

  ionViewDidLoad(){

  }

  //当视图进入页面的视乎触发
  ionViewDidEnter(){
    //获取选择的商品数据
    var cartsData = this.storage.get('carts_data'); 
    if(cartsData.length > 0){
      console.log("有数据");
      this.list = cartsData;
      this.hasData = true;
    }else{
      console.log("没有数据");
      this.list = [];
      this.hasData = false;
    }
    console.log(this.hasData);
    this.sumAllProductPrice();

    //一进到购物车页面判断是否全选
    //当前商品的选中数==购物车的商品列表数
    if(this.getCheckedProductSum() == this.list.length){
      this.isAllChecked = true;
    }else{
      this.isAllChecked = false;
    }
  }

  //离开的时候保存购物车的数据
  ionViewWillLeave(){
    this.storage.set('carts_data',this.list);
  }

  //计算合计价格
  sumAllProductPrice(){
    //计算合计总价
    //所有的商品的单价*件数
    var tempPrice  = 0;
    if(this.list.length){
      for(var i=0;i<this.list.length;i++){
        var product = this.list[i];
        if(product.checked == true){ //计算选中的商品的价格
        tempPrice += product.product_price * product.product_count;
        }
      }
      this.allPrice = tempPrice;
      console.log(this.allPrice);
    }
  }

  //改变商品的选中状态计算商品的价格
  changeCheckPrice(){
    console.log(this.list);
    this.sumAllProductPrice();

    if(this.getCheckedProductSum() == this.list.length){
      this.isAllChecked = true;
    }else{
      this.isAllChecked = false;
    }
  }

  //减少商品数量
  delSum(item){
    if(item.product_count > 1){
      --item.product_count;
      this.sumAllProductPrice();
    }
  }

  //增加商品数量
  addSum(item){
    ++item.product_count;
    this.sumAllProductPrice();
  }

  //点击全选（全部选中或者全部不选中）
  allChecked(){
    //将没有选中的商品都改变状态变成选中，
    //ionChange事件只要checkbox改变就会触发，会调用changeCheckPrice()
    console.log(this.isAllChecked);
    if(this.isAllChecked){
      //将购物车的所有数据全部至为不选中的状态
      for(var i=0; i<this.list.length;i++){
        this.list[i].checked = false;
      }
      this.isAllChecked = false;
    }else{
      //全部至为选中的状态
      for(var j=0; j<this.list.length;j++){
        this.list[j].checked = true;
      }
      this.isAllChecked = true;
    }
  }

  //获取商品的选中数量
  getCheckedProductSum(){
    var sum = 0;
    for(var i=0; i<this.list.length;i++){
      if(this.list[i].checked == true){
        sum+=1;
      }
    }
    return sum;
  }

  //去结算
  doPay(){
    //获取购物车选中的数据
    var tempArr  = [];
    for(var i=0;i<this.list.length;i++){
      var product = this.list[i];
      if(product.checked == true){ //计算选中的商品的价格
        tempArr.push(product);
      }
    }
    if(tempArr.length){
      console.log(tempArr);
      //将订单信息保存起来
      this.storage.set('order_data',tempArr);
      this.navCtrl.push(OrderPage);
    }else{
      alert('请至少选择一件商品');
    }
  }

  //删除商品
  doDelete(){
    //拿到所有没有选中的商品，就是剩下没有删除
    var noCheckArr = [];
    for(var i = 0; i<this.list.length; i++){
      var product = this.list[i];
      if(!product.checked){
        noCheckArr.push(product);
      }
    }
    this.list = noCheckArr;
    this.storage.set('carts_data',noCheckArr);

    if(this.list.length > 0){ 
      this.hasData = true;
    }else{
      this.hasData = false;
    }

  }
}
